package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Rect implements Comparable<Rect>{//矩形
   private Integer width;
   private Integer height;
   public Rect(){
   }
   public Rect(int width, int height) {
       this.width = width;
       this.height=height;
   }
   /**
     * 当我们调用Collections.sort(List<T> list)对象进行比较时，
     * 底层会调用compareTo方法进行对象比较，但是这里的T必须是实现
    * 了Compareable接口的对象。
     * o1.compareTo(o2)
     * o1<o2 返回值小于0
     * o1=o2 返回值等于0
     * o1>o2 返回值大于0
     * @return
     */
    @Override
    public int compareTo(Rect o) {
        //这里按照矩形的宽度进行比较
        return this.width-o.width;
    }

    @Override
    public String toString() {
        return "Rect{" +
                "width=" + width +
                ", height=" + height +
                '}';
    }
}

public class CollectionSortDemo02 {
    public static void main(String[] args) {
        Rect p1=new Rect(10,20);
        Rect p2=new Rect(5,30);
        Rect p3=new Rect(8,30);
        List<Rect> list=new ArrayList<>();
        list.add(p1);
        list.add(p2);
        list.add(p3);
        //调用Collections集合的sort方法对集合元素进行排序
        Collections.sort(list);//List集合中的元素需要实现Comparable接口
        System.out.println(list);
    }
}
